#ifndef BLOG_HPP
#define BLOG_HPP
#include "logger.hpp"
namespace blog
{
    // 提供获取日志器接口,避免用户自己操作单例对象
    logger::ptr get_logger(const std::string &name)
    {
        return logger_manager::get_instance().getLogger(name);
    }
    logger::ptr root_logger()
    {
        return logger_manager::get_instance().rootLogger();
    }
// 使用宏函数 代理日志器接口
#define debug(fmt, ...) Debug(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define info(fmt, ...) Info(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define warn(fmt, ...) Warn(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define error(fmt, ...) Error(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define fatal(fmt, ...) Fatal(__FILE__, __LINE__, fmt, ##__VA_ARGS__)

//默认日志器打印
#define DEBUG(fmt,...)  blog::root_logger()->debug(fmt,##__VA_ARGS__)
#define INFO(fmt,...)  blog::root_logger()->info(fmt,##__VA_ARGS__)
#define WARN(fmt,...)  blog::root_logger()->warn(fmt,##__VA_ARGS__)
#define ERROR(fmt,...)  blog::root_logger()->error(fmt,##__VA_ARGS__)
#define FATAL(fmt,...)  blog::root_logger()->fatal(fmt,##__VA_ARGS__)

}

#endif